Virtual desktop manager

ABSTRACT

A method for a user to preview multiple virtual desktops in a graphical user interface is described. The method comprises receiving an indication from a user to preview the multiple virtual desktops and displaying multiple panes on the display. Each pane contains a scaled virtual desktop having dimensions that are proportionally less than the dimensions of a corresponding full-size virtual desktop. Each scaled virtual desktop displays with one or more scaled application windows as shadows if the corresponding full-size virtual desktop has one or more corresponding application windows that are active.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a division of application Ser. No. 10/117,856, filedon Apr. 5, 2002.

FIELD OF THE INVENTION

This invention relates generally to the field of graphical userinterfaces, and more particularly, to the desktop area of a graphicaluser interface.

BACKGROUND OF THE INVENTION

The desktop area of a graphical user interface simulates the top of aphysical desk. The intent of the desktop simulation is to make acomputer easier to use by enabling users to move pictures of objects andto start and stop tasks in much the same way they would if they wereworking on a physical desktop. A desktop simulation is characteristic ofa number of operating systems, such as the Microsoft's Windows® andApple Macintosh. For clarity purposes, the following discussion willterm a “desktop simulation” as a desktop.

An example of a desktop 100 is shown in FIG. 1A, where one or moreapplication windows 102 are displayed on the desktop 100. Eachapplication window is associated with a software program (application)designed to assist in the performance of a specific task, such as wordprocessing, accounting, or inventory management. The desktop 100includes a button 106 for causing a pop-up menu (not shown) to appear onthe desktop 100 so as to allow one or more application windows 102 to belaunched. This button 106 resides in a panel 104 that lies along thebottom of the desktop 100.

When a sufficient number of application windows 102 are created andshown on the desktop 100, the desktop 100 may become confusinglycluttered, thereby making the computer harder to use. As a result,virtual desktops are provided to expand the size of the desktop 100.Each virtual desktop has the same size as the desktop 100. Using virtualdesktops allows the group of application windows 102 to be dispersedthroughout the virtual desktops, thereby reducing the clutteredappearance. Each virtual desktop may be accessed by clicking on anappropriate area in a desk guide 109. The desk guide may be locatedsomewhere on the panel 104.

One conventional implementation of a desk guide is the desk guide 109Ashown in FIG. 1B, where a panel 104A includes a button 106A for causinga pop-up menu (not shown) to appear on the desktop 100 to allow one ormore application windows 102 to be launched. The panel 104A alsoincludes a button 120A for minimizing the panel 104A. The desk guide109A includes a number of buttons 110-116. Each button 110-116 may beclicked using a pointing device, such as a mouse, to bring up a virtualdesktop associated with the clicked button. The name of each virtualdesktop is displayed on a button, 110-116. These names may be changed.As more and more application windows 102 are dispersed throughout thesevirtual desktops, it may be difficult for a user to remember whichdesktop contains which application window. The problem with the deskguide 109A is that it does not allow a user to quickly grasp where he orshe has placed various application windows without visiting each of thevirtual desktops by clicking on each of the buttons 110-116.

Another implementation of a desk guide is the desk guide 109B as shownin FIG. 1C. A panel 104B includes a button 106B for launching one ormore application windows 102 similar to the button 106A discussed above,and like the button 120A, the panel 104B includes a button 120B forminimizing the panel 104B. The desk guide 109B is an improvement overthe desk guide 109A in that each virtual desktop is shown as a pane130-136. In each pane, running application windows appear as small,raised squares 138. Notwithstanding the improvement, the desk guide 109Bhas problems similar to the desk guide 109A because it is still notpossible for a user to determine from these small raised squares 138 thedesired application window for which he may be looking. Moreover, manyof the panes look confusingly similar to one another, thereby hinderinga user's ability to recognize the particular virtual desktop on which heor she had opened a desired application. Thus, a user still has toactually visit each virtual desktop to find a desired applicationwindow.

Therefore, there is a need to enhance the visualization of virtualdesktops so that a user may locate a desired running application.

SUMMARY OF THE INVENTION

In accordance with the present invention, a method and computer readablemedium for presenting multiple virtual desktops on a display of acomputer system for previewing by a user are provided. A preview buttonis displayed on a desktop. When the preview button is selected, multiplepanes are displayed on the desktop in a tiled manner. Each pane containsa scaled virtual desktop having dimensions that are proportional butless than the dimensions of a corresponding virtual desktop. Each scaledvirtual desktop provides a representation of the corresponding full-sizevirtual desktop that would display albeit at a smaller scale. Forexample, if the corresponding full-size virtual desktop has one or moreapplication windows that are shown on the full-size virtual desktop, thescaled virtual desktop would display one or more scaled applicationwindows that correspond to the one or more application windows shown bythe corresponding full-size virtual desktop.

In accordance with other aspects of this invention, the display includesfirst and second areas. The multiple panes, when displayed, occupy atleast the first area of the display. The dimensions of the first areaare substantially greater than the dimensions of the second area. Inaccordance with further aspects of this invention, the first area formsa work area and the second area includes a task bar. Preferably, thepreview button is located in the task bar.

In accordance with yet other aspects of this invention, the backgroundimage of each scaled virtual desktop pane corresponds to its full-sizevirtual desktop. The use of corresponding backgrounds allows a user toimmediately and visually identify the different full-size virtualdesktops as well as the application windows that are running on thosevirtual desktops. In accordance with other further aspects of thisinvention, the scaled and full-size virtual desktops are animated in thesense that they progressively change in size (zoom), when shifting froma full-size virtual desktop to pane and vice versa.

In accordance with yet still other aspects of the present invention,application windows are shared across multiple virtual desktops. As thenumber of virtual desktops proliferates, a user may desire to access anapplication window that is opened in a full-size virtual desktop otherthan the current full-size virtual desktop. The method includesdisplaying controls, such as task buttons, representing all openapplication windows on the task bars of all full-size virtual desktops.When the user desires to open an application window in a current,full-size virtual desktop that is open in another full-size window, theuser activates the associated icon. This action results in the desiredapplication window being shifted to the current full-size virtualdesktop.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1A is a pictorial diagram illustrating a desktop of a graphicaluser interface according to the prior art.

FIG. 1B is a pictorial diagram illustrating one implementation of apanel containing a desk guide used to switch among multiple virtualdesktops according to the prior art.

FIG. 1C is a pictorial diagram illustrating another implementation of apanel containing a desk guide used to switch among multiple virtualdesktops according to the prior art.

FIG. 2 is a block diagram illustrating a generic computing device inwhich the computer readable medium of the invention is usable.

FIG. 3 is a pictorial diagram illustrating a full-size virtual desktop,including a virtual desktop manager having a preview button and a numberof quick switch buttons according to one embodiment of the invention.

FIG. 4 is a pictorial diagram illustrating a full-size virtual desktopshowing only a preview button according to one embodiment of theinvention.

FIG. 5 is a pictorial diagram illustrating a preview window showing thetiled multiple panes, each including a scaled virtual desktop accordingto one embodiment of the invention.

FIG. 6 is a pictorial diagram illustrating a preview window showingapplication buttons that are shared across tiled multiple panes, eachincluding a scaled virtual desktop according to one embodiment of theinvention.

FIG. 7 is a pictorial diagram illustrating a preview window showing thatthe sharing of application windows is disabled across tiled multiplepanes, each including a scaled virtual desktop according to oneembodiment of the invention.

FIG. 8 is a pictorial diagram illustrating a pop-up menu used toconfigure virtual desktops according to one embodiment of the invention.

FIG. 9 is a pictorial diagram illustrating a dialog window for changingbackground images of virtual desktops according to one embodiment of theinvention.

FIG. 10 is a pictorial diagram illustrating a dialog window for changingshortcut keys to access virtual desktops according to one embodiment ofthe invention.

FIG. 11 is a pictorial diagram illustrating a virtual desktop with adesktop manager according to another embodiment of the invention.

FIGS. 12A-12C are process diagrams illustrating the software flow of avirtual desktop manager according to one embodiment of the invention.

FIGS. 13A-13B are process diagrams illustrating the software flow of avirtual desktop manager according to another embodiment of theinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 2 illustrates an exemplary computer device 200 for implementing theinvention. In its most basic configuration, the computing device 200typically includes at least one processing unit 202 and memory 204.Depending on the exact configuration and type of computing device,memory 204 may be volatile (such as RAM), non-volatile (such as ROM,flash memory, etc.), or some combination of the two. This most basicconfiguration is illustrated in FIG. 2 by dashed line 206. Additionally,the computing device 200 may also have additionalfeatures/functionality. For example, the computing device 200 may alsoinclude additional storage (removable and/or non-removable) including,but not limited to, magnetic disks, optical disks, or tape. Suchadditional storage is illustrated in FIG. 2 by removable storage 208 andnon-removable storage 210. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for the storage of information, such ascomputer-readable instructions, data structures, program modules, orother data. Memory 204, removable storage 208, and non-removable storage210 are all examples of computer storage media. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory, orother memory technology, CD-ROMs, digital versatile disks (DVDs), orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage, or other magnetic storage devices, or any other medium whichcan be used to store the desired information and which can be accessedby the computing device 200. Any such computer storage media may be partof the computing device 200.

The computing device 200 may also contain communications connection(s)212 that allow the device to communicate with other devices.Communications connection(s) 212 is an example of communication media.Communication media typically embodies computer-readable instructions,data structures, program modules, or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, and other wireless media. The term computer-readable media asused herein includes both storage media and communication media.

The computing device 200 may also have input device(s) 214 such as akeyboard, mouse, pen, voice input device, touch input device, etc.Output device(s) 216 such as a display, speakers, printer, etc. may alsobe included. Because all of these devices are well known in the art,they are not described in detail here.

The computing device 200 may include a graphical user interface, whichis stored in memory 204 and is executed by the processing unit 202 to bepresented on the display output device 216. A graphical user interfaceis a visual computer environment that represents programs, files, andoptions with graphical images, such as icons, menus, and dialog boxes onthe screen. The user can select and activate these options by pointingand clicking with a mouse or, often, with a keyboard. In some computingdevices, these options can be voice selected and activated. A particularitem (such as a scrollbar) works the same way in all applicationsbecause the graphical user interface provides standard software routinesto handle these elements and report the user's actions (such as a mouseclick on a particular icon or at a particular location in text, or a keypress).

One type of graphical user interface creates a full-size virtual desktop300 that includes an on-screen work area 303 having a background image,such as shown in FIG. 3. The virtual desktop 300 also includes ataskbar. The on-screen work area and the taskbar of a correspondingfull-size virtual desktop cover all or substantially all of the viewablearea of the display.

Located in the taskbar 301, shown in FIG. 3, is a tray 304, a virtualdesktop manager 306, and a Start button 302. The virtual desktop manager306 includes a number of buttons, namely a preview button 308 and a setof quick switch buttons 311-316. The set of quick switch buttons 311-316is optional and need not be displayed as shown in FIG. 4. Selecting oneof the quick switch buttons 311-316 allows a user to cause acorresponding full-size virtual desktop to be displayed.

When the user clicks on the preview button 308, a preview window 310 isdisplayed as shown in FIG. 5. The preview window 310 includes tiledmultiple panes 312-318 and covers the area of the display normallycovered by a full-size virtual desktop, i.e., the entire viewable areaof the display. In each pane is a scaled virtual desktop havingdimensions that are proportionately less than the dimensions of acorresponding full-size virtual desktop. In the example shown in FIG. 5,there are four scaled virtual desktops 320-326. Each scaled virtualdesktop 320-326 may have a different background image. In this example,if less than four virtual desktops have been created, the on-screen workarea of one or more of the scaled virtual desktops 320-326 may be blank.Preferably, each scaled virtual desktop is identified by a number336-342. Each scaled virtual desktop 320-326 includes a taskbar 328-334.

Preferably, the virtual desktop manager 306 has an animation capabilitythat animates the presentation of the preview window 310 in a way thatgives a user a spatial sense of the arrangement of the virtual desktops.For example, suppose a sequence of actions begins with the user beingpresented the full-size virtual desktop 300 shown in FIG. 3. Thisvirtual desktop corresponds to the scaled virtual desktop 320, shown inthe upper left hand pane 312 of FIG. 5. Suppose next that the userclicks on the preview button 308 shown in FIG. 3. In response, thevirtual desktop manager 306 progressively shrinks (zooms) the dimensionsof the full-size virtual desktop 300 shown in FIG. 3 into the upper lefthand pane 312 of FIG. 5. As the virtual desktop manager 306 animates(shrinks) the full-size virtual desktop 300 shown in FIG. 3 in thismanner, it displays the other virtual desktops 322-326 in other panes314-318 of FIG. 5.

Now, suppose that the user selects the virtual desktop 320 located inthe upper left hand pane 312 of FIG. 5 by clicking on that pane 312while the preview window 310 is displayed. The animation capability ofthe virtual desktop manager 306 operates in the opposite manner andprogressively expands (zooms) the dimensions of the scaled virtualdesktop 320 until it has the dimensions of and becomes the full-sizevirtual desktop 300, which occupies all or substantially all of theviewable area of the display.

FIG. 6 illustrates a number of application windows 342B-348B shownrunning on tiled multiple scaled virtual desktops 320-326 in the previewwindow 310. More specifically, one application window 342B is active onthe scaled virtual desktop 320 located in the upper left hand pane ofthe preview window 310, another application window 344B is active on thescaled virtual desktop 322 located in the upper right hand pane of thepreview window 310, a further application window 346B is active on thescaled virtual desktop 324 located in the lower left hand pane of thepreview window 310, and another application window 348B is active on thescaled virtual desktop 326 located in the lower right hand pane of thepreview window 310. These application windows 342B-348B are shown asshadows.

As used here, the term “shadow” means an imperfect or faintrepresentation of an actual representation of an application window.Because each of these application windows 342B-348B is active in aparticular virtual desktop, none of them is shown to be active in morethan one virtual desktop, thereby preventing the clutter that mayconfuse users operating a single virtual desktop graphical userinterface. Moreover, the preview window 310 allows a user to apprehendmacroscopically all the virtual desktops at once as well as where he mayhave placed various application windows without visiting each of thevirtual desktops by separately clicking on each of the set of quickswitch buttons 311-316.

Each of the application windows 342B-348B has a task button 342A-348A,located in the window's corresponding taskbar 328-334. When the sharingaspect of the virtual desktop manager is enabled, all of these taskbuttons are made visible in the taskbar of each of the full-size virtualdesktops and correspondingly the scaled virtual desktops. The first taskbutton 342A corresponds to the application window 342B located in theupper left hand pane, the second task button 344A corresponds to theapplication window 344B located in the upper right hand pane, the thirdtask button 346A corresponds to the application window 346B located inthe lower left hand pane, and the fourth task button 348A corresponds tothe application window 348B located in the lower right hand pane.

When application sharing is enabled, an application window that isactive in one virtual desktop may be made active in another virtualdesktop. For clarity purposes, the following example uses scaled virtualdesktops as if they were actual virtual desktops, but it should beunderstood that the function of application sharing operates in thecontext of a full-size virtual desktop, i.e., a virtual desktop takingup all or substantially all of the screen display area. Suppose thecurrent full-size virtual desktop is the full-size virtual desktopassociated with the scaled virtual desktop 320 with the activeapplication window 342B located in the upper left hand pane. Suppose theuser wishes to switch to run the application window 348B located in thelower right hand pane. Instead of switching to the full-size virtualdesktop associated with the scaled virtual desktop 326 located in thelower right hand corner by closing the full-size virtual desktop andopening the other full-size virtual desktop, the user can click on therelated task button 348A without changing full-size virtual desktops.When this occurs, the application window 348B (to be switched) movesfrom the full-size virtual window in which it was located to the currentfull-size virtual desktop. Thus, in this example, the application window348B shown in the lower right hand pane shifts to the full-size virtualdesktop associated with the scaled virtual desktop shown in the upperleft hand pane. When the preview window 310 is opened again, theswitched application window 348B is shown in the scaled virtual desktopshown in the upper left hand pane.

When sharing is not enabled, only the task buttons that correspond tothe active application windows are shown in the taskbars of thefull-size virtual desktops. This is illustrated by the scaled virtualdesktops shown in FIG. 7. For example, the taskbar 328 shown in theupper left hand pane includes only the task button 342A whichcorresponds to the application window 342B open in the associatedfull-size virtual desktop. The task bar shown in the upper left handpane does not include the task buttons 344A-348A associated with theapplication windows that are open in the other full-size virtualdesktops. Similarly, the taskbars 330-334 shown in the other panesdisplay only the task buttons 344A-348A corresponding to theapplications windows 344B-348B that are active in their associatedfull-size virtual desktops. As more and more application windows areopened, disabling the sharing feature has the advantage of improvingtaskbar clutter.

As shown in FIG. 8, the virtual desktop manager 306 can be actuated(e.g., by clicking on the right button of a mouse while a pointer issuperjacent to the virtual desktop manager 306) to cause a pop-up menu350 to appear on the on-screen work area 303 of the current full-sizevirtual desktop. Various features associated with managing scaled andfull-size virtual desktops formed in accordance with the invention canbe controlled by user interaction with the pop-up menu 350. A “ShowQuick Switch Buttons” menu item 352, when selected, displays quickswitch buttons 311-316, as illustrated by FIG. 3. The quick switchbuttons 311-316 are not displayed if the menu item 352 is unselected, asshown in FIG. 4. A “Shared Desktops” menu item 354, if selected, allowsapplication windows to be accessed in multiple desktops as discussedabove with respect to FIG. 6. If unselected, applications are accessibleonly from the virtual desktop in which they were invoked, as shown inFIG. 7. A “Use Animations” menu item 356 results in the virtual desktopmanager 306 animating the switching between the scaled virtual desktopsshown in the preview window 310 and full-size virtual desktops asdescribed above. A “MSVDM Help” menu item 358 allows a user to access ahelp window containing help information associated with virtualdesktops. A “Configure Shortcut Keys” menu item 360 allows a user toconfigure a key or a key combination used to invoke a virtual desktop. A“Configure Desktop Images” menu item 362, when selected, brings up adialog box 364 shown in FIG. 9 and described next.

The dialog box 364 automatically opens to a “Desktop” tab 366. The“Desktop” tab 366 reveals and presents a number of thumbnails 368-374.Each thumbnail shows the background image of a corresponding virtualdesktop. The background image of a virtual desktop is change by a userselecting the thumbnail associated with the virtual desktop whose imageis to be changed. Selection can be accomplished by the user clicking onthe thumbnail. Then the user selects a desired background image from alist 376. If the displayed list 376 does not contain the desiredbackground image, the user can use the browse button 378 to causeundisplayed background images to be displayed. A user can select adesired position for the background image by choosing from among theselections in a pull-down menu 380. In one embodiment of the invention,the selections include tile, center, and stretch.

The dialog box 364 also includes a “shortcut keys” tab 382. Whenselected, the tab 382 reveals the configuration matrix shown in FIG. 10.The configuration matrix also can be accessed by selecting the“Configure Shortcut Keys” menu item 360 shown in FIG. 8. Theconfiguration matrix includes three columns. The first column 384 titled“Key 1” is the first key that must be pressed by the user to accesseither the preview window 310 or one of the full-size virtual desktops.The first key is configured by a user selecting one of the choices fromthe pull-down menus associated with the “Key 1” column. In one actualembodiment of the invention, the selections include the Windows key, theAlt key, the Control key, or the Shift key. The user may optionallyconfigure a key in the second column 386, which is titled “Key 2”. Thesecond column keys are similar to the first column Keys, i.e., theWindows key, the Alt key, the Control key, or the Shift key. The useralso configures the keys of the third column 388, which is titled “Key3”. Any number or letter may be used as the third key configuration. Thefirst row 390 of the matrix defines a key combination that invokes thepreview window 310, the second row 392 defines a key combination thatinvokes the full-size virtual desktop associated with the number 1, thethird row 394 defines a key combination that invokes the full-sizevirtual desktop associated with the number 2, the fourth row 396 definesa key combination that invokes the full-size virtual desktop associatedwith the number 3, and the row 398 defines a key combination thatinvokes the full-size virtual desktop associated with the number 4.

FIG. 11 shows a virtual desktop manager 400 according to anotherembodiment of the present invention. Whereas in the previous embodiment,the set of quick switch buttons 311-316 are used to access multiplevirtual desktops as discussed above, in this embodiment, thumbnails402-406 associated with full-size virtual desktops are shown in task bar301 located along one side of the on-screen work area 303 of the currentfull-size virtual desktop. The task bar may be a pop-up menu. A useraccesses a desired virtual desktop by selecting the thumbnail 402-406having the background image of the desired virtual desktop. Ifapplication windows are active in any of the associated full-sizevirtual desktops, the thumbnails 402-406 show the active applicationwindows as shadows similar to those discussed above with reference toFIGS. 6 and 7. A number of applications 399 not yet launched asapplication windows are shown on the taskbar 301. When a full-sizevirtual desktop is shown on the on-screen work area 303, the thumbnailcorresponding to the shown full-size virtual desktop is highlightedalong its periphery in the desktop virtual manager 400.

Preferably, the desktop virtual manager 400 has an animation capabilitythat animates the presentation of virtual desktops in a way that gives auser a spatial sense of the arrangement of the virtual desktops. Ifanimation is enabled, when the user switches from one virtual desktop toanother, the graphical user interface sets the old virtual desktop as astarting point in the animation and progressively shrinks the oldvirtual desktop. Contemporaneously, the graphical user interfaceprogressively reveals the new virtual desktop, which is the ending pointof the animation, as the old virtual desktop is shrinking.

For example, suppose a sequence of actions begins with the user beingpresented a first full-size virtual desktop associated with thumbnail402. Suppose next that the user clicks on the thumbnail 406. Inresponse, the desktop virtual manager 400 progressively shrinks (zooms)the dimensions of the first virtual desktop. At the same time as thevirtual desktop manager 306 animates (shrinks) the first virtual desktopin this manner, it gradually displays a second virtual desktopsassociated with the thumbnail 406. One suitable technique, althoughother techniques are also possible, for implementing this animationcapability of the desktop virtual manager 400 is illustrated in FIGS.13A-13B, which will be described later.

The operation of the virtual desktop manager 306, as described abovewith reference to FIGS. 3-10, is further illustrated in the process 1200shown in FIGS. 12A-12C. The process 1200 begins at a start block 1202and proceeds directly to a block 1204, where the virtual desktop (VDM)manager 306 creates a virtual desktop (VD) toolbar and docks or attachesthe virtual desktop toolbar to the taskbar 301, as shown by at a block1206.

Next, the process 1200 proceeds to a decision block 1208 to checkwhether the user has produced an input event using a mouse, a keyboard,or other input device. If the answer to the decision block 1208 is NO,the process 1200 enters a node A that loops back to decision block 1208.The process remains in this way until the user actually produces aninput event.

If the answer to the decision block 1208 is YES, the process proceeds toanother decision block 1210. In this regard, as shown in FIG. 3, thepreview button 308 and the quick button 311-316 are displayed for theuser to activate. Decision block 1210 tests the activation of thesebuttons. If any of the buttons 308-316 is activated by the user, theanswer to decision block 1210 is YES, and the process 1200 proceeds to ablock 1214 (explained later). If the answer to decision block 1210 isNO, the process proceeds to decision block 1212. At decision block 1212,the process 1200 determines the input event detected at decision block1208 is the actuation of a shortcut key. If an invalid shortcut key waspressed, the answer to the decision block 1212 is NO, and the process1200 proceeds to the node A and loops back to decision block 1208. If avalid shortcut key was pressed, the process proceeds to at block 1214where the virtual desktop manager 306 saves the screenshot of the“switching-from” virtual desktop including any open application windows.Afterwards, the process 1200 proceeds to node B, which is furtherdescribed at FIG. 12B.

From the node B, the process 1200 proceeds to a decision block 1216where a test is made to determine if the input event was generated bythe user clicking the preview button 308 or if the shortcut key invokingthe preview window 301 was pressed. If the input event was not a previewevent, the answer to the decision block 1216 is NO, and the processproceeds to a block 1218. At block 1218, the virtual desktop manager 306minimizes or hides all top level windows associated with the“switching-from” virtual desktop. Next, at block 1220, the virtualdesktop manager 306 sets the background image of the “switching-to”virtual desktop. Next, at a block 1222, the virtual desktop manager 306restores or shows all top level windows associated with the“switching-to” virtual desktop. Having switched to the desired virtualdesktop, the process 1200 proceeds from the block 1222 to node A andthen loops back to decision block 1208 to await further input events.

If the input event was a preview event, the answer to decision block1216 is YES, and the process 1200 proceeds to a block 1224. At block1224, the virtual desktop manager 306 sets up the preview mode. Some ofthe tasks involved in setting up the preview mode include bringing up apreview window 301, providing the borders on the preview window 301 toseparate each scaled virtual desktop from the others, and drawing atransparent number at the lower right corner of each scaled virtualdesktop.

When the setting up of the preview mode is finished, the processproceeds to where a test is made to determine if animation is enabled ata decision block 1226. If animation is enabled, the process proceeds toa block 1228. At block 1228, the virtual desktop manager 306 animatesthe current full-size virtual desktop into the scaled virtual desktop onthe preview window 301 by defining the screenshot of the currentfull-size virtual desktop as the starting point of the animation anddefining the corresponding scaled virtual desktop of the preview window310 as the ending point of the animation. When the animation iscompleted, the process proceeds to a block 1230 where the virtualdesktop manager 306 shows the preview window 310. If animation is notenabled, the answer to the decision block 1226 is NO, and the process1200 proceeds directly to block 1230. Next, the process 1200 proceeds tonode C, which is further described at FIG. 12C.

From node C the process 1200 continues to a block 1232 where the virtualdesktop manager 306 minimizes and hides all top level windows. This isdone to prevent inadvertent flickering between the preview window 301and other windows while the preview window 301 is displayed.

While the preview window 301 is displayed to the user, the process 1200awaits in a feedback loop at a decision block 1234 for the user toselect one of the scaled virtual desktops 320-326 as shown in FIG. 5.When a valid selection is made, the answer to decision block 1234 isYES, and the process proceeds to a block 1236. At block 1236 the virtualdesktop manager 306 restores and shows the application windowsassociated with the “switching-to” full-size virtual desktop. Then, atblock 1238, the virtual desktop manager 306 sets the background image ofthe “switching-to” virtual desktop. If animation is enabled, at adecision block 1240, the process 1200 proceeds to a block 1242 where thevirtual desktop manager 306 animates out of the scaled virtual desktopshown in the preview window to the “switching-to” virtual desktop. Inthis particular animation sequence, the starting point is the scaledvirtual desktop that corresponds to the “switching-to” virtual desktopand the ending point of the animation is the “switching-to” full-sizevirtual desktop. Next, the process 1200 flows to a block 1244 where thevirtual desktop manager 306 hides the preview window 301. If at decisionblock 1240, animation was not enabled, the process proceeds directly toblock 1244. From block 1244 the process proceeds to node A and loopsback to decision block 1304 to wait further input events.

The operation of the virtual desktop manager 400 as illustrated in FIG.11 is further explained by the process 1300 shown in FIGS. 13A-13B. Theprocess 1300 proceeds from a start block 1302 to a block 1304 where thevirtual desktop manager 400 initializes a desktop switcher (DS). Thedesktop switcher comprises multiple thumbnails 402-408. The thumbnails402-408 create an input event when activated by a user. An alternativeway to produce an input event is the activation of a short cut key.

The process 1300 flows to a decision block 1304 where it checks to seeif an input event has occurred. If there no input event has occurred,the process 1300 proceeds to a node D and loops back to decision block1304 to wait for a valid input event. If the answer to decision block1304 is YES, the process proceeds to another decision block 1306 where atest is made to determine if one of the thumbnails 402-408 was activatedby user. If the answer to decision block 1306 is YES, the processproceeds to a block 1310 is entered. Otherwise, the process proceeds toa decision block 1308 where a test is made to determine if the user hasinput a key or a combination of keys to invoke one of the virtualdesktops, i.e., has actuated a shortcut. If the answer to decision block1308 is NO, the process proceeds to node D and awaits a further inputevent (decision block 1304). If the answer to decision block 1308 isYES, the virtual desktop manager 400 proceeds to block 1310 where theforeground window of the current full-size virtual desktop, which isalso defined as the “switching-from” virtual desktop, is stored. Fromblock 1310, the process 1300 proceeds to node E and FIG. 13B.

From node E, the process 1300 proceeds to a decision block 1312 where atest is made to determine if animation is enabled. If animation isenabled the process proceeds to a block 1314. At block 1314, the virtualdesktop manager 400 constructs screen shots for both the“switching-from” virtual desktop and the “switching-to” virtual desktop.These screen shots will be used in the construction of the animationwindow at a block 1316. When the virtual desktop manager 400 hasdisplayed the animation window, the animation will be performed at ablock 1318 where the starting point of the animation is the constructedscreen shot of the “switching-from” virtual desktop and the ending pointof the animation is the “switching-to” virtual desktop. When theanimation is completed by showing the transition from the“switching-from” virtual desktop to the “switching-to” virtual desktop,the virtual desktop manager 400 hides active application windows of the“switching-from” virtual desktop at a block 1320 and saves thebackground image of the “switching-from” virtual desktop at a block1322.

The process 1300 then proceeds to a block 1324 from the block 1322,where the virtual desktop manager 400 shows the opened applicationwindows of the “switching-to” virtual desktop. Then, the virtual desktopmanager 400 displays the background image of the “switching-to” virtualdesktop at a block 1326. At a block 1328, the foreground applicationwindow of the “switching-to” virtual desktop is restored by the virtualdesktop manager 400. From here, the process 1300 re-enters the node Dwhere it loops to the decision block 1304 to await further input events.

While the preferred embodiment of the invention has been illustrated anddescribed, it will be appreciated that various changes can be madetherein without departing from the spirit and scope of the invention.

1. Method for providing different background images for multiple virtual desktops in a graphical user interface being presented on a display of a computer system, the method comprising: presenting each full-size virtual desktop including the background image of each full-size virtual desktop as a thumbnail on the display; receiving an indication from a user that an old background image of a first full-size virtual desktop of the multiple virtual desktops is to be replaced with a new background image; and displaying on the display the new background image of the first full-size virtual desktop of the multiple desktops in accordance with the indication received from the user if the old background image of the first full-size virtual desktop is in the view of the user, the act of displaying being adapted to display the background image of the thumbnail that corresponds to the first full-size virtual desktop.
 2. The method of claim 1, further comprising an act of showing on the display a first menu having a first set of menu items, each menu item in the first set of menu items corresponding to a selectable background image.
 3. The method of claim 2, wherein the act of receiving includes receiving a first selection event by a thumbnail representative of a desired full-size virtual desktop and then receiving a second selection event by a menu item from the first set of menu items to indicate a desired background image for the desired full-size virtual desktop, and wherein the act of displaying changes the background image of the thumbnail representative of the desired full-size virtual desktop to the desired background image.
 4. The method of claim 1, further comprising an act of configuring a set of shortcut keys, each shortcut key of the set of shortcut keys being selected from a group consisting of a shortcut key to invoke the display of a preview window and a shortcut key to invoke the display of a full-size virtual desktop from the multiple virtual desktops.
 5. The method of claim 1, further comprising an act of displaying a preview button so that the user may select the preview button to allow the method to receive an indication from the user to preview the multiple virtual desktops.
 6. Computer-readable medium having computer-executable instructions of performing the method for providing different background images for multiple virtual desktops in a graphical user interface being presented on a display of a computer system, the method comprising: presenting each full-size virtual desktop including the background image of each full-size virtual desktop as a thumbnail on the display; receiving an indication from a user that an old background image of a first full-size virtual desktop of the multiple virtual desktops is to be replaced with a new background image; and displaying on the display the new background image of the first full-size virtual desktop of the multiple desktops in accordance with the indication received from the user if the old background image of the first full-size virtual desktop is in the view of the user, the act of displaying being adapted to display the background image of the thumbnail that corresponds to the first full-size virtual desktop. 